Skip to content

Label the model each turn ran on in the Timeline and each Bot row - #480

Merged
Birfy merged 2 commits into
ThinkFlowLab:mainfrom
Birfy:feat/366-model-labels
Oct 20, 2026
Merged

Birfy merged 2 commits into
ThinkFlowLab:mainfrom
Birfy:feat/366-model-labels

Conversation

@Birfy

@Birfy Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

Fixes #366

What. The first slice of the Owner decision on #366 (option a: label models, no gateway, no new place for keys):

  • Activity feed: turn.end carries model (provider/model, cleaned) from the Session's latest request/header, only when the turn made a model call; never for a friend's Bot chat (place: 'remote'). Typed in flybot.d.ts, documented in plugin-runtime.
  • Timeline: the recorder keeps it as te.md; the read model serves turn.model; a turn bar's tooltip ends with the model id (Chief: 12 s · deepseek-v4-pro).
  • Sidebar tree / Bot list: an own Bot's row names its model on hover (Coder · DeepSeek V4 Pro, botRowTitle + modelOf, moved to text.js so the bundle order and diff stay small). A friend's Bot row is unchanged.

Why. You can see which model each Bot runs on and which model produced each turn, without a gateway or routing.

Test. New feed tests (latest header names the turn, unchanged header carries over, mid-session change, no model without a step, Session requestHeader() fallback, hostile name cleaned, remote never named), recorder / read-model / panel tests (field kept, malformed dropped, tooltip), botRowTitle / modelOf unit tests and a source check that tree rows use it. ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify passes (core 1063, social 291, tree 80, timeline 83, scripts 88, interop 37, live-e2e 16; 0 failures). Not run: the smoke bench and live Mac instances.

Risk tier: T1 (estimate; the controller sets the label)

Owner decision on ThinkFlowLab#366 (option a): the first slice only labels models, no gateway.

The activity feed's turn.end now carries `model` (provider/model) from the
Session's latest request/header, set only when the turn made a model call
and never for a friend's Bot chat. The timeline recorder keeps it as `te.md`
and a turn bar's tooltip ends with the model id. An own Bot's sidebar row
(the tree draws the same row) names its model in the hover text.
@Birfy Birfy added the agent-pr Pull request opened by an agent label Oct 20, 2026
@Birfy Birfy self-assigned this Oct 20, 2026
@Birfy Birfy added enhancement New feature or request area:automation Scheduled tasks and automation area:ui Web/desktop UI and copy labels Oct 20, 2026
@Birfy

Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review: PASS
Tip SHA: cc9e9e8
Ran:

  • ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify: pass, 0 failures (core lint + arch-docs OK, plugin lint, build-client --check, ds-bot-patches check, core 1063, social 291, tree 80, timeline 83, .github scripts 88, interop 37, live-e2e 16)
  • node scripts/ds-bot-patches.mjs generate then check: core/ equals ds-bot/ + patches
  • node .github/scripts/changelog.mjs check: fragments well formed
  • CI at the tip: tests-ok, test, plugins (social/tree/timeline), package all green
  • Checked against the design rules: label-only first slice per the Owner decision (no gateway, no routing, no new key storage); English UI; metadata only (feed carries a cleaned provider/model, never text); a friend's Bot chat is never labelled; no approval, grant or connector behaviour touched
    Not run:
  • Smoke bench (dev/bench.sh + dev/smoke.mjs; feed change covered by unit tests on the real ctx.flybot)
  • Live Mac instances / production Bot Social (never touched)

@Birfy Birfy added the awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip label Oct 20, 2026
@Birfy
Birfy added this pull request to the merge queue Oct 20, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Oct 20, 2026
# Conflicts:
#	patches/ds-bot/0008-client-bundle.patch
@Birfy

Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review: PASS
Tip SHA: 46f2eb5
Ran:

  • Merged origin/main (674bcd7: Search Composio's app list and show each picked app's sign-in status #479, Add a Dockerfile, compose file and guide to run FlyBot in a container #482) into the branch (merge commit, no rebase, no force-push). Only conflict was the generated patches/ds-bot/0008-client-bundle.patch: took main's patches/ds-bot, rebuilt core/client.js (npm run build), node scripts/ds-bot-patches.mjs generate then check: core/ equals ds-bot/ + patches. Both behaviors kept (Composio app search + Docker from main, model labels from this PR).
  • ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify on Node 24.21.0: pass, 0 failures (core lint + arch-docs OK, plugin lint, build-client --check, patches check, core 1070, social 291, tree 80, timeline 83, .github scripts 93, interop 37, live-e2e 16)
  • CI at the tip: tests-ok, test, plugins (social/tree/timeline), package all green; mergeable, CLEAN
  • Re-read the diff against the design rules: still the label-only first slice (no gateway, no new key storage), English UI, metadata-only feed field, friends' Bots never labelled
    Not run:
  • Smoke bench (dev/bench.sh + dev/smoke.mjs)
  • Live Mac instances / production Bot Social (never touched)

@Birfy
Birfy added this pull request to the merge queue Oct 20, 2026
Merged via the queue into ThinkFlowLab:main with commit cbfd13a Oct 20, 2026
8 checks passed
@Birfy
Birfy deleted the feat/366-model-labels branch October 20, 2026 03:26
@Birfy Birfy removed awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip agent-pr Pull request opened by an agent labels Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:automation Scheduled tasks and automation area:ui Web/desktop UI and copy enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RFC: harness × provider (Magpie-inspired gateway, routing groups, profiles)

1 participant